
dojo.provide("dojo.rpc.JsonService");dojo.require("dojo.rpc.RpcService");dojo.require("dojo.io.*");dojo.require("dojo.json");dojo.require("dojo.lang.common");dojo.rpc.JsonService=function(args){if(args){if(dojo.lang.isString(args)){this.connect(args);}else{if(args["smdUrl"]){this.connect(args.smdUrl);}
if(args["smdStr"]){this.processSmd(dj_eval("("+args.smdStr+")"));}
if(args["smdObj"]){this.processSmd(args.smdObj);}
if(args["serviceUrl"]){this.serviceUrl=args.serviceUrl;}
if(typeof args["strictArgChecks"]!="undefined"){this.strictArgChecks=args.strictArgChecks;}}}};dojo.inherits(dojo.rpc.JsonService,dojo.rpc.RpcService);dojo.extend(dojo.rpc.JsonService,{bustCache:false,contentType:"application/json-rpc",lastSubmissionId:0,callRemote:function(method,params){var deferred=new dojo.Deferred();this.bind(method,params,deferred);return deferred;},bind:function(method,parameters,deferredRequestHandler,url){dojo.io.bind({url:url||this.serviceUrl,postContent:this.createRequest(method,parameters),method:"POST",contentType:this.contentType,mimetype:"text/json",load:this.resultCallback(deferredRequestHandler),error:this.errorCallback(deferredRequestHandler),preventCache:this.bustCache});},createRequest:function(method,params){var req={"params":params,"method":method,"id":++this.lastSubmissionId};var data=dojo.json.serialize(req);dojo.debug("JsonService: JSON-RPC Request: "+data);return data;},parseResults:function(obj){if(!obj){return;}
if(obj["Result"]!=null){return obj["Result"];}else{if(obj["result"]!=null){return obj["result"];}else{if(obj["ResultSet"]){return obj["ResultSet"];}else{return obj;}}}}});